草庐IT

javascript 属性访问器

全部标签

ruby-on-rails - 在 ActiveSupport::Concern 中访问包含类的 protected 常量

在ActiveSupport::Concern上下文中访问包含类的protected常量的最简单方法是什么?示例类:modulePrintableextendActiveSupport::Concernprivatedefprint_constantputsMY_CONSTANTendendclassPrinterincludePrintabledefprintprint_constantendprivateMY_CONSTANT='Hello'.freezeend此解决方案产生错误:NameError:uninitializedconstantPrintable::MY_CONSTA

ruby - 动态添加的实例方法无法访问类变量

这个问题在这里已经有了答案:RubylooksforclassvariableintheObjectinsteadofspecificclass(1个回答)关闭6年前。(问题已发布在RubyForum,但没有引起任何答案)。这是我的代码:classMCdefinitialize@x=5@@y=6enddeffputs@xputs@@yendendm=MC.newm.fm.f产生预期的输出而没有错误:56但是这个:defm.gputs@xputs@@yendm.g产生:5warning:classvariableaccessfromtoplevelNameError:uninitiali

ruby - 使用名称访问实例变量(作为符号)

在Ruby中,我有这个类:classPositionattr_reader:x,:ydefinitialize(x,y)@x,@y=x,yendend我想要做的是使用符号访问x和y变量,如下所示:axis=:xpos=Position.new(5,6)#oneway:pos.axis#5(pos.x)#otherway:pos.get(axis)#5(pos.x)感谢thisquestion我发现使用这段代码,我可以实现第二种行为。#...classPositiondefget(var)instance_variable_get(("@#{var}").intern)endend但它看

ruby-on-rails - 用 Prawn 生成 PDF - 如何访问 Prawn.generate 中的变量?

我正在尝试使用Prawn生成pdf@buyer=Buyer.lastPrawn::Document.generate("samle.pdf")dotext"hello#{@buyer.name}world"end但这显然不起作用(仅当我使用类变量@@buyer时),我的问题是将变量传递给Prawn::Document.generate的正确方法是什么(我知道这个问题的解决方案是prawnto,但我正在尝试一些......而且它也是一个sinatra项目) 最佳答案 来自http://rdoc.info/github/sandal/p

ruby - 使用字符串按名称访问局部变量

我是新手,但我有以下代码:when/^read(.+)$/puts"Reading#{$1}:"puts$1.description.downcase我想使用$1作为我可以调用方法的变量,目前解释器返回一个"NoMethodError:undefinedmethod'description'for"Door":String"。编辑:例如:door=Item.new(:name=>"Door",:description=>"alockeddoor")key=Item.new(:name=>"Key",:description=>"akey") 最佳答案

ruby - 如何将 Ruby 哈希 "up"中的属性移动一级

x={:name=>"John",:data=>{:physical=>{:age=>25,:weight=>150}}}我希望将数据的子属性向上移动一个级别(但不一定只是简单地展平所有属性)。在这种情况下,我基本上想将:physical属性“向上”移动一个级别。我正在尝试这个y=x[:data']y.each{|key|x[key]=y[key]}但是我得到...x=x.except(:data)=>{:name=>"John",[:physical,{:age=>25,:weight=>150}]=>nil}我在找...=>{:name=>"John",:physical=>{:a

ruby - 从 Ruby 中的模块函数访问私有(private)方法

我正在尝试为模块函数创建私有(private)辅助方法,但无济于事。我觉得我缺少一些非常简单的东西。更新的示例具有更易于理解的用例:moduleFancyScorermodule_functiondefscore(ary)scores=[]ary.each_slice(2).with_indexdo|slice,i|scores`blockinscore_curiously':undefinedmethod`score_eventh'#forFancyScorer:Module(NoMethodError)注意:私有(private)方法应保持私有(private)。这是用例:有几个模

ruby-on-rails - rails heroku - 如何安装需要 'npm install ...' 的 javascript 依赖项

我正在将我的Rails应用程序部署到heroku。我想使用一些javascript库,它们希望我们像这样安装npm依赖项:npminstallabc因此,在本地我可以安装npm和执行“npminstallabc”。不确定如何在heroku中与我的Rails应用程序一起使用。 最佳答案 使用Heroku的多重构建方法:UsingMultipleBuildpacksforanApp通过先安装NodeJS,再安装Ruby,Heroku将在Ruby中发生任何事情之前安装您的Node依赖项。herokubuildpacks:setheroku

ruby-on-rails - Rails Devise - 管理员角色、模型与属性

我知道如何创建管理员角色/用户:https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role但我想知道的是,在这两个选项之间做出决定时是否需要考虑任何优点或缺点。任何人都可以对此提供任何见解吗? 最佳答案 让我把水弄混一点。我更喜欢通过Role表和连接表UserRole来实现这一点。这样我就可以定义多个角色而无需向数据库添加另一列/表。classUserhas_many:user_roleshas_many:roles,:through=>:user_r

ruby - 将 initialize() args 设置为属性的快捷方式?

这是一个常见的初始化模式:definitialize(title,val,type)@title,@val,@type=title,val,typeend是否有等价于“获取每个参数,创建同名属性,并将该属性设置为参数值”的快捷方式?我正在寻找无gem的解决方案。 最佳答案 您将失去检查错误参数的功能,但可以这样做:definitialize(*args)@title,@val,@type=argsend但是如果你反复这样做,那么你的代码就不对了。您应该更好地重新设计API以采用命名参数:definitialize(title:,va